﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SistemaLib.Entidades;
using SistemaLib.Persistencia;
using System.Data;


namespace SistemaLib.Gestores
{
    public static class GestorTareaAsignacion
    {
        public static TareaAsignacion CargarTareaAsignacionPorId(int idTas)
        {
            DbTareaAsignacion db = new DbTareaAsignacion();
            return db.CargarTareaAsignacionPorId(idTas);
        }

        public static DataSet ListarTareas()
        {
            DbTareaAsignacion db = new DbTareaAsignacion();
            return db.ListarTareasAsignaciones();
        }

        public static bool TareaTieneAsignaciones(int idTarea)
        {
            DbTareaAsignacion db = new DbTareaAsignacion();
            return db.TareaTieneAsignaciones(idTarea);
        }

        public static void Guardar(TareaAsignacion tas)
        {
            if (GestorRecursoCalendario.RecursoDisponible(tas))
            {                

                tas.FechaFin = GestorRecursoCalendario.ActualizarCalendarioRecurso(tas);

                DbTareaAsignacion db = new DbTareaAsignacion();
                db.Guardar(tas);
            }
            else
                throw new Exception("El Recurso no tiene horario disponible para esa fecha, no se ha realizado la asignacion");
           
        }

        public static void Eliminar(int idTas)
        {
            DbTareaAsignacion db = new DbTareaAsignacion();
            db.Eliminar(idTas);
        }

        public static List<TareaAsignacion> ListarTareasMensuales(int idRH, int mes, int anio)
        {
            DbTareaAsignacion db = new DbTareaAsignacion();
            return db.ListarTareasMensuales(idRH, mes, anio);
        }

        public static decimal HorasAsignadas(int idTarea, int idRH)
        {
            DbTareaAsignacion db = new DbTareaAsignacion();
            return db.HorasAsignadas(idTarea, idRH);
        }

        public static List<TareaAsignacion> ListarPlanMensualProyecto(int idProyecto, int mes, int anio)
        {
            DbTareaAsignacion db = new DbTareaAsignacion();
            return db.ListarPlanMensualProyecto(idProyecto, mes, anio);
        }

        
    }
}
